home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
tool
/
reimia
/
reimia.bas
< prev
next >
Wrap
BASIC Source File
|
1994-11-16
|
57KB
|
1,179 lines
1000 '====================================================================
1010 '
1020 ' CD&PCM PLAYER - 麗美亜 - Ver 1.21
1030 ' Programed By 月しま 亜美レイ裕敏
1040 ' (C)1994 SGS SOFT
1050 '
1060 '====================================================================
1070 CLEAR:CLEAR ,,512,(500+(FRE(4)\(1000000))*900)*1024
1080 SCREEN @0:COLOR 7,%0:WIDTH 80,25:CONSOLE 0,24,2:CLS:DEFINT A-Z
1090 VIEW(0,0)-(1023,511):WINDOW(0,0)-(1023,511)
1100 FREE&=(500+(FRE(4)\1000000)*900)*1024:GOSUB *PAL_01:'GOSUB *PAL_02
1110 GOSUB *PATTAN_MAKE
1120 '
1130 '===================================================================
1140 'オープニング
1150 '===================================================================
1160 '
1170 COLOR ,0:CLS:GOSUB *PAL_02:'GOTO 1230
1180 XX=168:FOR YY=-8 TO 192:GOSUB *ABOUT_02
1190 IF YY>=0 AND YY<192 THEN LINE(XX,YY)-(XX+303,YY+1),PSET,0,BF
1200 NEXT YY:WAIT 200
1210 FOR YY=192 TO 480 STEP 2:GOSUB *ABOUT_02
1220 LINE(XX,YY)-(XX+303,YY+2),PSET,0,BF:NEXT YY
1230 GOSUB *VIEW_MAKE
1240 '
1250 '===================================================================
1260 '初期設定
1270 '===================================================================
1280 '
1290 ON ERROR GOTO *エラールーチン
1300 HZ%=8:SEC2!=2:GOSUB *SECLEAR_02:GOSUB *SESTAT_02
1310 DIM INF(5),STAT(8),CDST(20),PCMST(20),CDS&(10),PRO(20)
1320 TRA=0:REP=0:PAU=0:ENTRA=0:GOSUB *CDST_LED
1330 YY=90:GOSUB *TR_LED:GOSUB *MI_LED:GOSUB *SE_LED:GOSUB *FR_LED
1340 GOSUB *RECRESET_01
1350 MOUSE 1,320,240,1:LIV=0
1360 FOR I=0 TO 1:MOUSE 3,I,4:NEXT I
1370 FOR L=0 TO 3:VL(L)=3-(L=0 OR L=3)*124
1380 IF L<>3 THEN VL_MODE=L:VL=VL(L):GOSUB *OUT_VL01:NEXT L:ELSE NEXT L
1390 VL_MODE=3:PCMST(5)=127:BVL=3:VL=127
1400 FOR I=3 TO 127 STEP 4:GOSUB *VL_METER:NEXT I
1410 PTR=0:PCO=0:PCOUNT=1 : CO=7:GOSUB *PROSET_01S:GOSUB *PROSET_02S
1420 CO=7:YE=0:A$="DEL" :GOSUB *PRORESET_SU
1430 YE=1:A$="RESET":GOSUB *PRORESET_SU
1440 GOSUB *PROPLAY_01S:GOSUB *FREQRESET_02
1450 OTIM&=0:GOSUB *ORDER_TIME
1460 GOSUB *PAL_02
1470 CDST(8)=0:GOSUB *TIME_CHECK:GOSUB *CD_STAT:TI$=TIME$:DA$=DATE$
1480 '
1490 '===================================================================
1500 'メイン
1510 '===================================================================
1520 '
1530 MO=1:GOTO *CD_INF
1540 E=0:CDST(9)=0:TRA=0
1550 *MAIN_01
1560 GOSUB *TIME_CHECK:GOSUB *CD_STAT
1570 IF OTO%(0)=0 THEN *MAIN_02
1580 PCMST(0)=ABS(PLAY(2))
1590 IF PCMST(0)=0 AND BP=1 THEN CO=0:I=9:GOSUB *F_BOTTAN:BP=PCMST(0)
1600 *MAIN_02
1610 IF MOUSE(2,0)=-1 THEN 1620 ELSE IF MOUSE(2,0)=0 THEN *MAIN_01
1620 MX=MOUSE(0):MY=MOUSE(1)
1630 FOR I=0 TO 10
1640 IF MX>=BODA(I,0) AND MY>=BODA(I,1) AND MX<=BODA(I,2) AND MY<=BODA(I,3) THEN LIV=I+1:I=10
1650 NEXT I:IF LIV=0 THEN *MAIN_03
1660 ON LIV GOSUB *FREQRESET,*VOLUME,*VLMODE,*CD_SYNC,*SE_FREQ,*MANUAL_TIME,*PROSET,*PRORESET,*PROPLAY,*CALLENDER_02,*RECRESET_01
1670 GOTO *MAIN_04
1680 *MAIN_03
1690 FOR I=0 TO 19
1700 IF MX>BX(I) AND MX<BX(I)+59 AND MY>BY(I) AND MY<BY(I)+39 THEN LIV=I+1:I=19
1710 NEXT I:IF LIV=0 THEN 1770
1720 CO=1:I=LIV-1:GOSUB *F_BOTTAN : GOTO 1730
1730 IF LIV>=1 AND LIV<=8 THEN GOSUB *CD_CON :GOTO *MAIN_04
1740 ON (LIV- 8) GOSUB *FREQ_JUD,*SEPLAY,*FREQ_JUD,*SECLEAR
1750 ON (LIV-12) GOSUB *SEREC,*CDSEREC,*SELOAD,*SESAVE,*SESTOP
1760 ON (LIV-17) GOSUB *DUMMY,*終了,*SYS_01
1770 *MAIN_04:LIV=0:GOTO *MAIN_01
1780 '
1790 '====================================================================
1800 'SE コントロール
1810 '====================================================================
1820 '
1830 '- PCM音声ファイルSAVE ------------------
1840 *SESAVE
1850 IF OTO%(0)=0 THEN 1970 :ELSE GOSUB *MOUSE_ROCK
1860 Q=1:GOSUB *YN_JUD:IF YE=0 THEN 1960 :'データを保存?
1870 GOSUB 2420:CD PAUSE
1880 A$="セーブ":GOSUB *FMESSAGE_01
1890 LINE INPUT F$
1900 MO=INSTR(F$,"?"):IF MO<>0 THEN GOSUB *FILE_LIST:CLS 4:GOTO 1880
1910 CLS 4:GOSUB 2430:IF LEN(F$)=0 THEN 1960
1920 GOSUB *FMESSAGE_02
1930 MOUSE 6,0,PAND4%,PDOT4%:GOSUB 2220:SAVE@ F$,OTO%
1940 GOSUB *FMESSAGE_03
1950 WAIT 100:MOUSE 6,0,PAND1%,PDOT1%:GOSUB *SND_NAME
1960 GOSUB *MES_CLS:IF CDST(1)=0 THEN CD CONT
1970 CO=0:I=15:GOSUB *F_BOTTAN : RETURN *MAIN_04
1980 Q=2:GOSUB *YN_JUD:IF YE=0 THEN 1860 :'ファイルを上書き?
1990 KILL F$:GOTO 1920
2000 '- PCM音声ファイルLOAD ------------------
2010 *SELOAD
2020 GOSUB *MOUSE_ROCK:IF E<>0 THEN GOSUB *SND_NAME
2030 Q=3:GOSUB *YN_JUD:IF YE=0 THEN 2190 :'ファイルを読出?
2040 GOSUB 2420:CD PAUSE
2050 A$="ロード":GOSUB *FMESSAGE_01
2060 LINE INPUT F$
2070 MO=INSTR(F$,"?"):IF MO<>0 THEN GOSUB *FILE_LIST:CLS 4:GOTO 2050
2080 CLS 4:GOSUB 2430:IF LEN(F$)=0 THEN 2190
2090 GOSUB *FMESSAGE_02:ERASE OTO%:GOSUB *SECLEAR_02
2100 DIM OTO2%(320000):GOSUB 2220:LOAD@ F$,OTO2%
2110 OTO2%(7)=OTO2%(7)-(OTO2%(7)=0)*ABS(OTO2%(6)<=0)
2120 BY&=OTO2%(6)+(OTO2%(7)*65536)+32:ERASE OTO2%
2130 ERASE OTO%:DIM OTO%(BY&/2)
2140 MOUSE 6,0,PAND4%,PDOT4%:LOAD@ F$,OTO%
2150 FREQ%=((OTO%(12)/98)*1000):SEC!=(BY&-32)/FREQ%:SFREQ%=OTO%(12)
2160 GOSUB *FMESSAGE_03
2170 WAIT 100:MOUSE 6,0,PAND1%,PDOT1%:GOSUB *SND_NAME:GOSUB *SE_STAT
2180 GOSUB *SEWAVE
2190 GOSUB *MES_CLS:IF CDST(1)=0 THEN CD CONT
2200 PCMST(2)=0 : CO=0:I=14:GOSUB *F_BOTTAN : RETURN *MAIN_04
2210 '--------------------------------------------------------------------
2220 MO=INSTR(F$,".SND"):IF MO=0 THEN F$=F$+".SND"
2230 RETURN
2240 '--------------------------------------------------------------------
2250 *FMESSAGE_01
2260 COLOR 5:LOCATE 28,0:PRINT"PCM音声ファイル"+A$
2270 COLOR 7:LOCATE 54,1:PRINT"SGS FILE SELECTER V1.01"
2280 COLOR 6
2290 LOCATE 2,3:PRINT A$+"するPCM音声ファイル名を入力して下さい"
2300 COLOR 7:LOCATE 2,5:PRINT"'?' を入力すると指定したドライブの"
2310 LOCATE 2,6:PRINT"PCM音声ファイルリストを表示します ";
2320 PRINT"(例:'A:\?','B:\CD?')" : RETURN
2330 *FMESSAGE_02
2340 MES$="PCM音声ファイル"+A$+"中":CO=2:GOSUB *MES : RETURN
2350 *FMESSAGE_03
2360 GOSUB *MES_CLS:MES$="PCM音声ファイル"+A$+"終了"
2370 CO=2:GOSUB *MES : RETURN
2380 '--------------------------------------------------------------------
2390 *SND_NAME:LINE(392,56)-STEP(231,15),PSET,0,BF
2400 SYMBOL(392,56),F$,1,1,5,,,0:RETURN
2410 '--------------------------------------------------------------------
2420 OUT &H440,17,2:OUT &H442,220,2:OUT &H440,27,2:OUT &H442,18,2:RETURN
2430 OUT &H440,17,2:OUT &H442, 0,2:OUT &H440,27,2:OUT &H442, 0,2:RETURN
2440 '--------------------------------------------------------------------
2450 *FILE_LIST
2460 F=2:COLOR 7:FILES LEFT$(F$,INSTR(F$,"?"))+"*"
2470 'F=2:COLOR 7:FILES LEFT$(F$,INSTR(F$,"\*.SND"))+"*"
2480 LOCATE ,CSRLIN-2
2490 F=1:F$=LEFT$(F$,MO-1)+"*.SND":FILES F$
2500 COLOR 2:PRINT"何かキーを押して下さい ":F=0
2510 Q$=INKEY$:IF Q$="" THEN 2520 ELSE RETURN
2520 IF MOUSE(2,0)=-1 THEN RETURN ELSE 2510
2530 '- PCM再生 --------------------------
2540 *SEPLAY
2550 IF OTO%(0)=0 THEN 2560 ELSE 2570 :'PCM音声あるか?
2560 CO=0:GOSUB *F_BOTTAN : RETURN *MAIN_04
2570 *SEPLAY_01:GOSUB *MOUSE_ROCK:PCMPLAY OTO%,PCMST(5):GOSUB *SE_STAT
2580 PCMST(2)=1:PCMST(0)=1:BP=PCMST(0):RETURN *MAIN_04
2590 '- PCM音声録音 ------------------------
2600 *SEREC
2610 GOSUB *MOUSE_ROCK:Q=4:GOSUB *YN_JUD:IF YE=0 THEN 2660 :'録音する?
2620 CD PAUSE:PLAY OFF: CO=0:I=9:GOSUB *F_BOTTAN
2630 IF (SEC2!*(HZ%*1000)+32)>FREE& THEN GOTO 2660
2640 SEC!=SEC2!:FREQ%=HZ%*1000:ERASE OTO%
2650 GOSUB *SEREC_02:GOSUB *SEREC_03:IF CDST(1)=0 THEN CD CONT
2660 CD CONT:CO=0:I=12-(LIV=14):GOSUB *F_BOTTAN : RETURN *MAIN_04
2670 '--------------------------------------------------------------------
2680 *CDSEREC
2690 BTR=TRA:MIN!=(EP(0)*60+EP(1)+EP(2)/60)-(SP(1)*60+SP(2)+SP(3)/60)
2700 IF (MIN!*(HZ%*1000)+32)>FREE& THEN GOTO 2830
2710 IF MIN!<=0 OR SP(0)=0 THEN GOTO 2830
2720 GOSUB *MOUSE_ROCK:Q=4:GOSUB *YN_JUD:IF YE=0 THEN 2830 :'録音する?
2730 CDST(1)=0:CDST(9)=0:CD PAUSE:PLAY OFF:TRA=SP(0):GOSUB *CDST_LED
2740 CO=0:FOR I=1 TO 2:GOSUB *F_BOTTAN:NEXT I
2750 MES$="演奏テスト":CO=2:GOSUB *MES
2760 GOSUB *CDSEREC_02
2770 Q=5:GOSUB *YN_JUD :'もう一度聞く?
2780 IF YE=1 THEN GOTO 2750 ELSE IF YE=0 THEN CD PAUSE
2790 GOSUB *MES_CLS
2800 Q=6:GOSUB *YN_JUD:IF YE=0 THEN GOTO 2830 :'録音を開始する?
2810 SEC!=MIN!:FREQ%=HZ%*1000:ERASE OTO%:GOSUB *SEREC_02
2820 GOSUB *CDSEREC_02:GOSUB *SEREC_03
2830 TRA=BTR : CO=0:I=13:GOSUB *F_BOTTAN : RETURN *MAIN_04
2840 '--------------------------------------------------------------------
2850 *CDSEREC_02
2860 CD PLAY (SP(1),SP(2),SP(3),TRA)-(EP(0),EP(1),EP(2),TRA)
2870 GOSUB *CD_PLAY2 : RETURN
2880 '--------------------------------------------------------------------
2890 *SEREC_02
2900 DIM OTO%(SEC!*FREQ%/2+16):BY&=SEC!*FREQ%+32
2910 CO=0:COUNT=499
2920 WHILE MOUSE(2,0)=0 AND KY$<>CHR$(13)
2930 COUNT=COUNT+1:IF COUNT<1000 THEN 2960
2940 COUNT=0:IF CO=6 THEN CO=0 ELSE CO=6
2950 MES$="左クリックでサンプリング開始!":GOSUB *MES
2960 KY$=INKEY$:WEND
2970 GOSUB *MES_CLS:MOUSE 6,0,PAND2%,PDOT2%
2980 MES$="サンプリング中":CO=2:GOSUB *MES: RETURN
2990 *SEREC_03
3000 PCMREC OTO%,FREQ%
3010 LINE(32,420)-(279,455),PSET,0,BF
3020 GOSUB *MES_CLS:MES$="サンプリング終了":CO=2:GOSUB *MES
3030 WAIT 100:GOSUB *MES_CLS:SFREQ%=OTO%(12):MOUSE 6,0,PAND1%,PDOT1%
3040 F$=" ":GOSUB 2390:GOSUB *SE_STAT:GOSUB *SEWAVE: RETURN
3050 '- サンプリング周波数調整 --------------------
3060 *FREQ_JUD
3070 YE=0:IF OTO%(0)=0 THEN 3150
3080 WHILE MOUSE(2,0)=-1
3090 IF LIV=11 THEN 3100 ELSE 3110
3100 OTO%(12)=(OTO%(12)*1000/98-50*(FREQ%<=32000))*98/1000:GOTO 3120
3110 OTO%(12)=(OTO%(12)*1000/98+50*(FREQ%>=1000))*98/1000
3120 GOSUB *SE_STAT
3130 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
3140 WEND
3150 CO=0:I=LIV-1:GOSUB *F_BOTTAN
3160 IF PCMST(0)=1 THEN GOTO *SEPLAY_01 ELSE RETURN *MAIN_04
3170 '- PCM再生停止 ------------------------
3180 *SESTOP
3190 IF PLAY(2)=-1 THEN PLAY OFF : CO=0:I=9:GOSUB *F_BOTTAN
3200 GOSUB *MOUSE_ROCK : CO=0:I=16:GOSUB *F_BOTTAN
3210 PCMST(0)=0:PCMST(2)=0:BP=PCMST(0):RETURN *MAIN_04
3220 '- PCM音声データクリア --------------------
3230 *SECLEAR
3240 IF OTO%(0)=0 THEN 3270 ELSE 3250 :'PCM音声あるか?
3250 GOSUB *MOUSE_ROCK:Q=8:GOSUB *YN_JUD:IF YE=0 THEN 3270 :'クリア?
3260 PLAY OFF:ERASE OTO%:GOSUB *SECLEAR_02:F$=" ":GOSUB *SND_NAME
3270 CO=0:I=11:GOSUB *F_BOTTAN:RETURN *MAIN_04
3280 *SECLEAR_02:SEC!=0:FREQ%=0:BY&=0:GOSUB *SESTAT_02
3290 GOSUB *SEWAVE_02:DIM OTO%(1000):RETURN
3300 '- サンプリング周波数初期化 -------------------
3310 *FREQRESET
3320 IF OTO%(0)=0 THEN RETURN
3330 CO=0:GOSUB 3360:OTO%(12)=SFREQ%:GOSUB *SE_STAT:GOSUB *SESTAT_02
3340 GOSUB *MOUSE_ROCK:CO=7:GOSUB 3360:RETURN
3350 *FREQRESET_02
3360 A=ABS(CO=0)*7:LINE(388,232)-(435,243),PSET,CO,B
3370 CONNECT(388,243)-(435,243)-(435,232),A
3380 SYMBOL(392,234),"RESET",.875!,.55!,%5-(CO=0)*5,,,1,1:RETURN
3390 '- 波形データ --------------------------
3400 *SEWAVE
3410 GOSUB *SEWAVE_02
3420 ADDR&=VARPTR(OTO%(0)):XX=390:POINT(390,376)
3430 FOR L&=32 TO BY& STEP (BY&-32)\228
3440 DAT=PEEK(ADDR&+L&)
3450 LINE -(XX,376+(DAT<128)*DAT\2-(DAT>127)*(DAT-128)\2),PSET,6
3460 XX=XX+1:NEXT L&:RETURN
3470 *SEWAVE_02:LINE(388,312)-(619,439),PSET,0,BF
3480 LINE(388,376)-(619,376),PSET,4:RETURN
3490 '- 音量MODE切換え ----------------------
3500 *VLMODE
3510 YE=VL_MODE:BVL=VL(YE)
3520 FOR I=0 TO 3
3530 IF MX>=69+I*40 AND MX<=108+I*40 THEN VL_MODE=I:I=3
3540 NEXT I
3550 CO=7:I=YE:GOSUB *VLMODE_SU : CO=0:I=VL_MODE:GOSUB *VLMODE_SU
3560 VL=VL(VL_MODE):IF BVL=VL THEN 3580
3570 FOR I=BVL TO VL STEP 4+(BVL>VL)*8:GOSUB *VL_METER:NEXT I
3580 GOSUB *MOUSE_ROCK : RETURN
3590 *VLMODE_SU
3600 A=ABS(CO=0)*7:LINE(69+I*40,304)-STEP(39,11),PSET,CO,B
3610 CONNECT(69+I*40,315)-STEP(39,0)-STEP(0,-11),A
3620 SYMBOL(VLX(I),306),VL$(I),.875!,.55!,%5-(CO=0)*5,,,1,1 : RETURN
3630 '- 音量調整 ---------------------------
3640 *VOLUME
3650 YE=0:VL=VL(VL_MODE):BVL=VL
3660 IF MX>=56 AND MX<=183 THEN GOSUB *VOLUME_02 ELSE GOSUB *VOLUME_03
3670 VL(VL_MODE)=VL:IF VL_MODE=3 THEN PCMST(5)=VL
3680 RETURN
3690 '-- メータで音量を調整 --------------------------------------------
3700 *VOLUME_02
3710 YE=-1:VL=((MX-52)\4)*4-1:IF BVL=VL THEN RETURN
3720 FOR I=BVL TO VL STEP 4+(BVL>VL)*8:GOSUB *VL_METER:NEXT I
3730 IF VL_MODE<>3 THEN GOSUB *OUT_VL01
3740 RETURN
3750 '-- ボタンで音量を調整 --------------------------------------------
3760 *VOLUME_03
3770 WHILE MOUSE(2,0)=-1 AND YE>-1
3780 YE=-1:FOR L=0 TO 1:MX=MOUSE(0):MY=MOUSE(1)
3790 IF MX>=190+L*20 AND MY>=322 AND MX<=209+L*20 AND MY<=341 THEN YE=L:L=1
3800 NEXT L
3810 IF YE=-1 THEN 3860
3820 PUT@A(190+YE*20,322)-(209+YE*20,341),UPDOWN%,PSET,1,1,,120*(YE*2+1)
3830 VL=VL+((YE=0)*(VL<127))*4-((YE=1)*(VL>3))*4
3840 I=VL:GOSUB *VL_METER:MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
3850 IF VL_MODE<>3 THEN GOSUB *OUT_VL01
3860 WEND
3870 FOR I=0 TO 1
3880 PUT@A(190+I*20,322)-(209+I*20,341),UPDOWN%,PSET,,,,120*(I*2)
3890 NEXT I:RETURN
3900 '--------------------------------------------------------------------
3910 *VL_METER
3920 IF VL>=BVL THEN CO=12+(I>92)*2 ELSE CO=8
3930 XX=54+I-(BVL>VL AND I<>127)*4:GOSUB *VL_METER02
3940 FOR J=0 TO 2
3950 DD=VL\(10^(2-J)) MOD 10:XX=16+J*10:GOSUB *LEDLOOK_01:NEXT J
3960 RETURN
3970 *VL_METER02
3980 LINE(XX,326)-(XX+1,337),PSET,%CO,BF:YY=324
3990 RETURN
4000 '--------------------------------------------------------------------
4010 *OUT_VL01
4020 IF VL_MODE=1 THEN CH=2:GOSUB *OUT_VL02:RETURN
4030 FOR I=ABS(VL_MODE=2)*4 TO 1-(VL_MODE=2)*4
4040 CH=I:GOSUB *OUT_VL02:NEXT I
4050 RETURN
4060 '--------------------------------------------------------------------
4070 *OUT_VL02
4080 IF CH>=4 THEN PORT=&H4E0:CH=CH-4:ELSE PORT=&H4E2
4090 CMM=CH OR 4
4100 IF VL<64 THEN CMM=CMM OR &H10:DAT=VL:ELSE DAT=VL-64
4110 OUT PORT+1,CMM,1:OUT PORT,DAT,1:RETURN
4120 '
4130 '====================================================================
4140 'CD コントロール
4150 '====================================================================
4160 '
4170 *CD_CON:YE=0
4180 ON LIV GOSUB *CDSTOP,*CDPLAY_01,*CDPAUSE,*CDREPEAT,*CDFNEXT,*CDNEXT,*CDNEXT,*CDFNEXT
4190 RETURN *MAIN_04
4200 '- CD演奏停止 -------------------------
4210 *CDSTOP
4220 MOUSE 6,0,PAND3%,PDOT3%
4230 CD STOP : CDST(1)=0:CDST(9)=0:CDST(2)=0 : TRA=0
4240 CO=0 :FOR I=0 TO 3:GOSUB *F_BOTTAN:NEXT I
4250 MOUSE 6,0,PAND1%,PDOT1%:GOSUB *CD_STAT
4260 GOSUB *CDST_LED:RETURN
4270 '- CD演奏一時停止 -----------------------
4280 *CDPAUSE
4290 IF CDST(9)=0 THEN 4330
4300 IF CDST(1)=0 THEN CDST(1)=1 ELSE CDST(1)=0
4310 IF CDST(1)=1 THEN CD PAUSE ELSE CD CONT
4320 GOSUB *CDST_LED
4330 GOSUB *MOUSE_ROCK
4340 CO=CDST(1):I=2:GOSUB *F_BOTTAN : RETURN
4350 '- CD曲間演奏(リピート) -------------------
4360 *CDREPEAT
4370 IF CDST(2)=0 THEN CDST(2)=1 ELSE IF CDST(2)=1 THEN CDST(2)=0
4380 GOSUB *CDST_LED : GOSUB *MOUSE_ROCK
4390 CO=CDST(2):I=3:GOSUB *F_BOTTAN : RETURN
4400 '- CDトラック スキップ --------------------
4410 *CDNEXT
4420 CD PAUSE:SE=0:MI=0:FR=0:GOSUB *CDTIME_CHECK:GOSUB *FR_LED
4430 WHILE MOUSE(2,0)=-1 AND YE>-1
4440 YE=-1:FOR L=5 TO 6
4450 IF MX>BX(L) AND MX<BX(L)+59 AND MY>BY(L) AND MY<BY(L)+39 THEN YE=L+1:L=6
4460 NEXT L
4470 IF YE<>LIV THEN YE=-1:GOTO 4520
4480 IF CDST(6)=1 THEN PCOUNT=PCOUNT-(YE=7)*(1+(PCO=PCOUNT)*PCO)+(YE=6)*(1+(PCOUNT<=1)*PCO):TRA=PRO(PCOUNT):GOTO 4510
4490 IF YE=6 THEN TRA=TRA-1-(TRA<=1)*CDST(10)
4500 IF YE=7 THEN TRA=TRA+1+(CDST(10)=TRA)*CDST(10)
4510 CO=1 : I=LIV-1 : GOSUB *F_BOTTAN:GOSUB *TRACK_CHECK
4520 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
4530 WAIT 15:WEND
4540 CO=0:FOR I=5 TO 6:GOSUB *F_BOTTAN:NEXT I:GOSUB *CDPLAY_02:RETURN
4550 '- CD曲間巻戻し・早送り --------------------
4560 *CDFNEXT
4570 IF CDST(9)=0 THEN 4760
4580 IF CDST(1)=0 THEN CDSTAT STAT:TIM&=(STAT(6)*60+STAT(7))*75
4590 IF CDST(1)=1 THEN CDST(1)=0:CO=0:I=2:GOSUB *F_BOTTAN:GOSUB *CDST_LED
4600 FR=0:GOSUB *FR_LED
4610 WHILE MOUSE(2,0)=-1
4620 TIM&=TIM&+(LIV=5)*75-(LIV=8)*75
4630 IF CDST(6)=1 AND (TIM&<0 OR TIM&>CDS&(TRA)) THEN 4640 ELSE 4670
4640 PCOUNT=PCOUNT-(LIV=8)*(1+(PCO=PCOUNT)*PCO)+(LIV=5)*(1+(PCOUNT<=1)*PCO):TRA=PRO(PCOUNT)
4650 IF TIM&<0 THEN TIM&=CDS&(TRA) ELSE TIM&=0
4660 GOTO 4710
4670 IF TIM&<0 AND TRA>1 THEN TRA=TRA-1:TIM&=CDS&(TRA)
4680 IF TIM&<0 AND TRA=1 AND LIV=5 THEN TRA=1:TIM&=0
4690 IF TIM&>CDS&(TRA) AND TRA<INF(5) THEN TRA=TRA+1:TIM&=0
4700 IF TIM&>CDS&(TRA) AND TRA=CDST(10) THEN TRA=1:TIM&=0
4710 SE=TIM&\75\60:MI=(TIM&\75) MOD 60:GOSUB *CDTIME_CHECK
4720 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
4730 WAIT 4:WEND
4740 ABSM=TIM&\4500:ABSS=(TIM&\75) MOD 60
4750 CD PLAY (ABSM,ABSS,0,TRA):GOSUB *CD_PLAY2
4760 CO=0:I=LIV-1:GOSUB *F_BOTTAN : RETURN
4770 '- CD演奏 ---------------------------
4780 *CDPLAY_01
4790 CDST(0)=1:IF CDST(9)=1 THEN RETURN
4800 *CDPLAY_02
4810 IF CDST(1)=1 THEN 4820 ELSE 4850
4820 IF LIV=6 OR LIV=7 THEN 4830 ELSE 4840
4830 GOSUB *CD_PLAY:CD PAUSE:CDST(9)=1:GOSUB 7670:RETURN
4840 GOSUB *CD_CONT
4850 IF CDST(0)=1 THEN GOSUB *CD_PLAY:CDST(9)=1:ELSE RETURN
4860 GOSUB *CDST_LED
4870 RETURN
4880 '- プログラム設定 ------------------------
4890 *PROSET
4900 IF PCO>=20 THEN 4950
4910 YE=-1:FOR L=0 TO 1
4920 IF MX>=16+L*40 AND MX<=55+L*20 THEN YE=L+1:L=1:NEXT L:ELSE NEXT L
4930 IF YE=-1 THEN 4950
4940 ON YE GOSUB *PROSET_01,*PROSET_02
4950 RETURN *MAIN_04
4960 '--------------------------------------------------------------------
4970 *PROSET_01:IF PTR=0 THEN RETURN
4980 IF CDST(6)=1 THEN CDST(6)=0:CO=7:GOSUB 5690:GOSUB *CDST_LED
4990 PCO=PCO+1:PRO(PCO)=PTR:CO=0:GOSUB 5040
5000 OTIM&=OTIM&+CDS&(PRO(PCO)):GOSUB *ORDER_TIME
5010 A$=MID$(STR$(PRO(PCO)),2+(PRO(PCO)<10),2)
5020 SYMBOL(118+((PCO-1 MOD 10)MOD 10)*16,380-(PCO>10)*16),A$,.75!,.55!,7
5030 GOSUB *MOUSE_ROCK:CO=7:GOSUB 5040:RETURN
5040 *PROSET_01S:A=ABS(CO=0)*7:LINE(16,360)-(55,371),PSET,CO,B
5050 CONNECT(16,371)-(55,371)-(55,360),A
5060 SYMBOL(23,362),"SET",.875!,.55!,%5-(CO=0)*5,,,1,1:RETURN
5070 '--------------------------------------------------------------------
5080 *PROSET_02
5090 YE=0:EN_SW=0
5100 WHILE MOUSE(2,0)=-1 AND EN_SW=0
5110 FOR J=0 TO 1:BOX=56+J*10
5120 IF MX>=BOX AND MX<=BOX+9 THEN 5130 ELSE 5140
5130 K=J:BO=1: YE=J+1:J=1 :GOSUB 5220
5140 NEXT J
5150 IF YE=0 THEN EN_SW=1:GOTO 5180
5160 PTR=PTR-(YE=1)*(1+(INF(5)=PTR)*INF(5))+(YE=2)*(1+(PTR<=1)*INF(5))
5170 GOSUB *PROSET_02S:MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
5180 WAIT 15:WEND
5190 BO=0:GOSUB 5220:RETURN
5200 *PROSET_02S:YY=356:FOR I=0 TO 1:DD=PTR\(10^(1-I)) MOD 10
5210 XX=88+I*10:GOSUB *LEDLOOK_01:NEXT I : RETURN
5220 PUT@A(BOX,360)-(BOX+9,369),UPDOWN2%,PSET,1,1,,40*((K*2)+BO):RETURN
5230 '- プログラムリセット ----------------------
5240 *PRORESET
5250 IF PCO=0 THEN 5300
5260 IF CDST(6)=1 THEN CDST(6)=0:CO=7:GOSUB 5690:GOSUB *CDST_LED
5270 FOR L=0 TO 1
5280 IF MX>=200+L*28 AND MX<=227+L*28 THEN YE=L:L=1:NEXT L:ELSE NEXT L
5290 ON YE+1 GOSUB *PRORESET_01,*PRORESET_02
5300 RETURN *MAIN_04
5310 '--------------------------------------------------------------------
5320 *PRORESET_01:IF PRO(1)=0 THEN RETURN
5330 OTIM&=OTIM&-CDS&(PRO(PCO))
5340 PRO(PCO)=0:PCO=PCO-1:GOSUB *ORDER_TIME:A$="DEL":CO=0:GOSUB 5490
5350 LINE(117+((PCO MOD 10)MOD 10)*16,377-(PCO>9)*16)-STEP(13,13),PSET,0,BF
5360 GOSUB *MOUSE_ROCK:CO=7:GOSUB 5490:RETURN
5370 '--------------------------------------------------------------------
5380 *PRORESET_02
5390 A$="RESET":CO=0:GOSUB *PRORESET_SU:GOSUB *PRORESET_03
5400 GOSUB *MOUSE_ROCK:CO=7:GOSUB 5490:RETURN
5410 '--------------------------------------------------------------------
5420 *PRORESET_03
5430 PCO=0:OTIM&=0:GOSUB *ORDER_TIME : PTR=0:GOSUB *PROSET_02S
5440 FOR Y=0 TO 1:FOR X=0 TO 9:PRO(Y*10+X+1)=0
5450 LINE(117+X*16,377+Y*16)-STEP(13,13),PSET,0,BF:NEXT X,Y
5460 RETURN
5470 '--------------------------------------------------------------------
5480 *PRORESET_SU
5490 A=ABS(CO=0)*7:LINE(200+YE*28,352)-(227+YE*48,363),PSET,CO,B
5500 CONNECT(200+YE*28,363)-STEP(27+YE*20,0)-STEP(0,-11),A
5510 SYMBOL(203+YE*30,354),A$,.875!,.55!,%5-(CO=0)*5,,,1,1:RETURN
5520 '- プログラム演奏 ------------------------
5530 *PROPLAY
5540 IF PCO=0 THEN RETURN *MAIN_04
5550 YE=-1:FOR L=0 TO 1
5560 IF MX>=16+L*100 AND MX<=111+L*163 THEN YE=L+1:L=1:NEXT L:ELSE NEXT L
5570 IF YE=-1 THEN RETURN *MAIN_04
5580 ON YE GOSUB *PROPLAY_01,*PROPLAY_02
5590 IF CDST(6)=1 AND CDST(1)=1 THEN GOSUB *CD_CONT
5600 GOSUB *CDST_LED:RETURN *MAIN_04
5610 '--------------------------------------------------------------------
5620 *PROPLAY_01:IF PRO(1)=0 THEN RETURN
5630 CO=CDST(6)*7:GOSUB *PROPLAY_01S
5640 IF CDST(6)=0 THEN CDST(6)=1 ELSE CDST(6)=0
5650 IF CDST(6)=0 THEN 5680
5660 PCOUNT=1:TRA=PRO(PCOUNT):CDST(1)=0:CO=0:I=2:GOSUB *F_BOTTAN
5670 IF CDST(0)=1 THEN GOSUB *CD_PLAY:CDST(9)=1
5680 GOSUB *CDST_LED:RETURN
5690 *PROPLAY_01S
5700 A=ABS(CO=0)*7:LINE(16,376)-(111,407),PSET,CO,B
5710 CONNECT(16,407)-(111,407)-(111,376),A
5720 SYMBOL(36,388),"PROGRAM",.875!,.55!,%5-(CO=0)*5,,,1,1:RETURN
5730 '--------------------------------------------------------------------
5740 *PROPLAY_02
5750 IF PRO(1)=0 OR CDST(6)=0 THEN RETURN
5760 YE=-1:FOR Y=0 TO 1:FOR X=0 TO 9
5770 IF MX>116+X*16 AND MX<131+X*16 AND MY>376+Y*16 AND MY<391+Y*16 THEN YE=Y*10+X+1:YY=Y:XX=X:Y=1:X=9
5780 NEXT X,Y
5790 IF YE=-1 THEN RETURN ELSE IF PRO(YE)=0 THEN RETURN
5800 CO=2:GOSUB 5830:PCOUNT=YE:TRA=PRO(PCOUNT)
5810 IF CDST(0)=0 THEN CDST(0)=1:CO=1:I=1:GOSUB *F_BOTTAN
5820 GOSUB *CD_PLAY:CO=0:GOSUB *PROPLAY_02S:GOSUB *MOUSE_ROCK:RETURN
5830 *PROPLAY_02S:LINE(117+XX*16,377+YY*16)-STEP(13,13),PSET,CO,B:RETURN
5840 '----------------------------------
5850 *ORDER_TIME
5860 OMI=OTIM&\4500:OSE=(OTIM&\75) MOD 60
5870 YY=359:FOR I=0 TO 1:DD=PCO\(10^(1-I)) MOD 10:XX=118+I*10
5880 IF I=0 AND DD=0 THEN DD=10
5890 GOSUB *LEDLOOK_01:NEXT I
5900 FOR I=0 TO 1:DD=OMI\(10^(1-I)) MOD 10:XX=146+I*10
5910 IF I=0 AND DD=0 THEN DD=10
5920 GOSUB *LEDLOOK_01:NEXT I
5930 FOR I=0 TO 1:DD=OSE\(10^(1-I)) MOD 10:XX=170+I*10
5940 GOSUB *LEDLOOK_01:NEXT I
5950 RETURN
5960 '- ミュージックカレンダー --------------------
5970 *CALLENDER_01
5980 FOR Y=0 TO 4:FOR X=0 TO 4
5990 LINE(289+X*16,361+Y*16)-STEP(13,13),PSET,0,BF:NEXT X,Y
6000 FOR Y=0 TO 4:FOR X=0 TO 4:IF Y*5+X+1>INF(5) THEN X=4:Y=4:GOTO 6030
6010 A$=MID$(STR$(Y*5+X+1),1-(Y*5+X+1>9),2)
6020 SYMBOL(291+X*16,364+Y*16),A$,.75!,.55!,7
6030 NEXT X,Y
6040 CONNECT(348,444)-(367,450)-(348,456)-(348,444),%7,,F,%0-(INF(5)>25)*5
6050 RETURN
6060 '--------------------------------------------------------------------
6070 *CALLENDER_02
6080 YE=-1:FOR Y=0 TO 4:FOR X=0 TO 4
6090 IF MX>288+X*16 AND MX<305+X*16 AND MY>360+Y*16 AND MY<375+Y*16 THEN YE=Y*5+X+1:YY=Y:XX=X:Y=4:X=4
6100 NEXT X,Y
6110 IF YE=-1 THEN RETURN ELSE IF YE>INF(5) THEN RETURN
6120 IF CDST(6)=1 THEN CDST(6)=0:CO=7:GOSUB *PROPLAY_01S
6130 IF CDST(1)=1 THEN GOSUB *CD_CONT
6140 CO=2:GOSUB *CALLEN_02S:TRA=YE:CDST(9)=1:LIV=30
6150 IF CDST(0)=0 THEN CDST(0)=1:CO=1:I=1:GOSUB *F_BOTTAN
6160 GOSUB *CD_PLAY:GOSUB *CDST_LED
6170 CO=0:GOSUB *CALLEN_02S:GOSUB *MOUSE_ROCK:RETURN
6180 *CALLEN_02S:LINE(289+XX*16,361+YY*16)-STEP(13,13),PSET,CO,B:RETURN
6190 '- SET-UP -------------------------
6200 '-- CDシンクロ --------------------------------------------------
6210 *CD_SYNC
6220 YE=0:K=-1:EN_SW=0
6230 WHILE MOUSE(2,0)=-1 AND EN_SW=0
6240 FOR I=0 TO 3:FOR J=0 TO 1:BOX=(18+I*24-(I>0)*8)+J*10
6250 IF MX>=BOX AND MX<=BOX+4 THEN 6260 ELSE 6280
6260 K=J:BO=1: YE=I+1:YE2=J: I=3:J=1: NEXT J,I
6270 GOSUB *UDBOT_01:GOTO 6340
6280 NEXT J,I
6290 FOR I=0 TO 2:FOR J=0 TO 1:BOX=(132+I*24)+J*10
6300 IF MX>=BOX AND MX<=BOX+4 THEN 6310 ELSE 6320
6310 K=J:BO=1: YE=I+5:YE2=J: I=2:J=1: GOSUB *UDBOT_01
6320 NEXT J,I
6330 IF YE=0 THEN EN_SW=1:GOTO 6360
6340 GOSUB *CDSYNC_02:GOSUB *CDSYNC_03
6350 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
6360 WAIT 15+(YE=4 OR YE=7)*14:WEND
6370 IF K>-1 THEN BO=0:GOSUB *UDBOT_01
6380 RETURN
6390 '--------------------------------------------------------------------
6400 *CDSYNC_02
6410 ON YE GOTO 6420,6430,6440,6450,6460,6470,6480
6420 SP(0)=SP(0)-(YE2=0)*(1+(CDST(10)=SP(0))*CDST(10))+(YE2=1)*(1+(SP(0)<=1)*CDST(10)) :RETURN: 'トラック
6430 SP(1)=SP(1)-(YE2=0)*(1+(INF(2)=SP(1))*(INF(2)+1))+(YE2=1)*(1+(SP(1)<=0)*(INF(2)+1)):RETURN: '開始分
6440 SP(2)=SP(2)-(YE2=0)*(1+(SP(2)=59)*60)+(YE2=1)*(1+(SP(2)<=0)*60) :RETURN: '開始秒
6450 SP(3)=SP(3)-(YE2=0)*(1+(SP(3)=74)*75)+(YE2=1)*(1+(SP(3)<=0)*75) :RETURN: '開始フレーム
6460 EP(0)=EP(0)-(YE2=0)*(1+(INF(2)=EP(0))*(INF(2)+1))+(YE2=1)*(1+(EP(0)<=0)*(INF(2)+1)):RETURN: '終了分
6470 EP(1)=EP(1)-(YE2=0)*(1+(EP(1)=59)*60)+(YE2=1)*(1+(EP(1)<=0)*60) :RETURN: '終了秒
6480 EP(2)=EP(2)-(YE2=0)*(1+(EP(2)=74)*75)+(YE2=1)*(1+(EP(2)<=0)*75) :RETURN: '終了フレーム
6490 '--------------------------------------------------------------------
6500 *CDSYNC_03
6510 YY=263:FOR I=0 TO 3:FOR J=0 TO 1:DD=SP(I)\(10^(1-J)) MOD 10
6520 XX=(18+I*24-(I>0)*8)+J*10:GOSUB *LEDLOOK_01:NEXT J,I
6530 FOR I=0 TO 2:FOR J=0 TO 1:DD=EP(I)\(10^(1-J)) MOD 10
6540 XX=(132+I*24)+J*10 :GOSUB *LEDLOOK_01:NEXT J,I : RETURN
6550 '-- SE録音周波数 ------------------------------------------------
6560 *SE_FREQ
6570 YE=0:EN_SW=0
6580 WHILE MOUSE(2,0)=-1 AND EN_SW=0
6590 FOR J=0 TO 1:BOX=244+J*10
6600 IF MX>=BOX AND MX<=BOX+9 THEN 6610 ELSE 6620
6610 K=J:BO=1: YE=J+1:J=1 :GOSUB *UDBOT_01
6620 NEXT J
6630 IF YE=0 THEN EN_SW=1:GOTO 6660
6640 HZ%=HZ%-(YE=1)*(1+(HZ%=19)*19)+(YE=2)*(1+(HZ%<=1)*19)
6650 GOSUB *SEFREQ_02:MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
6660 WAIT 15:WEND
6670 BO=0:GOSUB *UDBOT_01:RETURN
6680 *SEFREQ_02:YY=263:FOR I=0 TO 1:DD=HZ%\(10^(1-I)) MOD 10
6690 XX=244+I*10:GOSUB *LEDLOOK_01:NEXT I : RETURN
6700 '-- LINE・SE録音時間 ----------------------------------------
6710 *MANUAL_TIME
6720 YE=0:EN_SW=0
6730 WHILE MOUSE(2,0)=-1 AND EN_SW=0
6740 FOR I=0 TO 1:FOR J=0 TO 1:BOX=(300+I*24)+J*10
6750 IF MX>=BOX AND MX<=BOX+4 THEN 6760 ELSE 6770
6760 K=J:BO=1: YE=I+1:YE2=J: I=1:J=1 :GOSUB *UDBOT_01
6770 NEXT J,I
6780 IF YE=0 THEN EN_SW=1:GOTO 6850
6790 ON YE GOTO 6800,6820
6800 LS(0)=LS(0)-(YE2=0)*(1+(LS(0)=99)*100)+(YE2=1)*(1+(LS(0)<=0)*100)
6810 GOTO 6830
6820 LS(1)=LS(1)-(YE2=0)*(1+(LS(1)=74)*75)+(YE2=1)*(1+(LS(1)<=0)*75)
6830 GOSUB *MTIME_02:SEC2!=LS(0)+(LS(1)/75)
6840 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
6850 WAIT 2:WEND
6860 BO=0:GOSUB *UDBOT_01:RETURN
6870 *MTIME_02:YY=263:FOR I=0 TO 1:FOR J=0 TO 1:DD=LS(I)\(10^(1-J)) MOD 10
6880 XX=(300+I*24)+J*10:GOSUB *LEDLOOK_01:NEXT J,I : RETURN
6890 '--------------------------------------------------------------------
6900 *UDBOT_01
6910 PUT@A(BOX,284)-(BOX+9,293),UPDOWN2%,PSET,1,1,,40*((K*2)+BO)
6920 RETURN
6930 '- SET-UPリセット ---------------------
6940 *RECRESET_01
6950 CO=0:GOSUB *RECRESET_03:GOSUB *RECRESET_02
6960 GOSUB *MOUSE_ROCK:CO=7:GOSUB *RECRESET_03:RETURN
6970 '--------------------------------------------------------------------
6980 *RECRESET_02
6990 EP(0)=0:EP(1)=0:EP(2)=0
7000 SP(0)=0:SP(1)=0:SP(2)=0:SP(3)=0:SEC2!=2:HZ%=8
7010 GOSUB *CDSYNC_03:GOSUB *SEFREQ_02
7020 LS(0)=FIX(SEC2!):LS(1)=(SEC2!-LS(0))*75:GOSUB *MTIME_02
7030 RETURN
7040 '--------------------------------------------------------------------
7050 *RECRESET_03:A=ABS(CO=0)*7:LINE(320,228)-(367,239),PSET,CO,B
7060 CONNECT(320,239)-(367,239)-(367,228),A
7070 SYMBOL(324,230),"RESET",.875!,.55!,%5-(CO=0)*5,,,1,1:RETURN
7080 '- システム ---------------------------
7090 *SYS_01
7100 GET@A(8,48)-(191,127),MENU%:GOSUB *MOUSE_ROCK
7110 FOR I=0 TO 1:LINE(8+I,48+I)-STEP(183-I,79-I),PSET,7,BF,%7:NEXT I
7120 FOR I=0 TO 1:CONNECT(8+I,127-I)-(191-I,127-I)-(191-I,48+I),0:NEXT I
7130 FOR I=0 TO 1:LINE(12,52+I*24)-STEP(175,19+I*28),PSET,7,BF,%8:NEXT I
7140 FOR I=0 TO 1:LINE(28,79+I*22)-STEP(156,19),PSET,7,BF,0:NEXT I
7150 SYMBOL(52, 54),"SYSTEM",1,1,7,,PSET,1
7160 SYMBOL(32, 81),"about REIMIA",1,1,7,,PSET,1,1
7170 SYMBOL(32,103),"FREE MEMORY" ,1,1,7,,PSET,1,1
7180 FOR I=0 TO 1:SYMBOL(16,81+I*22),CHR$(49+I),1,1,6,,PSET,5:NEXT I
7190 IF MOUSE(2,0)=0 THEN 7280 :'マウス
7200 WHILE MOUSE(2,0)=-1
7210 MX=MOUSE(0):MY=MOUSE(1):YE=0:FOR I=0 TO 1
7220 IF MX>=28 AND MY>=79+I*22 AND MX<=184 AND MY<=98+I*22 THEN YE=I+1
7230 NEXT I
7240 IF YE=0 THEN CO=7:FOR YE=1 TO 2:GOSUB *SYS_S1:NEXT YE:YE=0
7250 IF YE>0 THEN CO=2:GOSUB *SYS_S1
7260 WEND
7270 IF YE>0 THEN 7330
7280 IF MOUSE(2,1)=-1 THEN PUT@A(8,48)-(191,127),MENU%,PSET,1,1:GOTO 7440
7290 KY$=INKEY$:YE=VAL(KY$)
7300 IF YE=1 OR YE=2 THEN CO=2:GOSUB *SYS_S1:WAIT 5:GOTO 7330
7310 GOTO 7190
7320 '--------------------------------------------------------------------
7330 PUT@A(8,48)-(191,127),MENU%,PSET,1,1:GOSUB *WINPUT
7340 ON YE GOSUB *ABOUT_01,*FREEMEMORY:YE=0:GOSUB *SYS_S2
7350 WHILE MOUSE(2,0)=-1 :'マウス
7360 MX=MOUSE(0):MY=MOUSE(1)
7370 IF MX>=406 AND MY>=260 AND MX<=441 AND MY<=279 THEN YE=1 ELSE YE=0
7380 GOSUB *SYS_S2
7390 GOSUB *TIME_CHECK:WEND
7400 IF YE=1 THEN WAIT 5:GOTO 7430
7410 KY$=INKEY$:IF KY$=CHR$(13) THEN YE=1:GOSUB *SYS_S2:WAIT 5:GOTO 7430
7420 GOSUB *TIME_CHECK:GOTO 7350
7430 GOSUB *WINCLS
7440 CO=0:I=19:GOSUB *F_BOTTAN : RETURN
7450 '-- アバウト『麗美亜』 --------------------------------------------
7460 *ABOUT_01:XX=168:YY=192:GOSUB *ABOUT_02:RETURN
7470 *ABOUT_02:PUT@A(XX,YY)-(XX+303,YY+95),ABOUT%:RETURN
7480 '-- 残りメモリ領域 ------------------------------------------------
7490 *FREEMEMORY
7500 PUT@A(168,192)-(471,287),FRWIN%
7510 YY=228:ZERO=0:FOR I=0 TO 7:DD=FRE(4)\(10^(7-I)) MOD 10
7520 IF DD<>ZERO THEN ZERO=-1:ELSE DD=10
7530 XX=319+I*10:GOSUB *LEDLOOK_01:NEXT I
7540 RETURN
7550 '--------------------------------------------------------------------
7560 *SYS_S1:LINE(28,79+(YE-1)*22)-STEP(156,19),PSET,CO,B : RETURN
7570 *SYS_S2:PUT@A(406,260)-(441,279),YN%,MATTE,,,%7,216*YE
7580 SYMBOL(408,262),"OK",1,1,7-YE*5,,,1 : RETURN
7590 '
7600 '====================================================================
7610 'サブルーチン
7620 '====================================================================
7630 '
7640 '- CD状態 ---------------------------
7650 *CD_STAT
7660 IF CDST(1)=1 THEN 7700
7670 CDSTAT STAT:SE=STAT(6):MI=STAT(7):FR=STAT(8)
7680 TIM&=(STAT(6)*60+STAT(7))*75+STAT(8)
7690 GOSUB *CDTIME_CHECK:GOSUB *FR_LED
7700 CDST(0)=STAT(1):IF A=6 THEN RETURN
7710 IF (TRA<>STAT(5) AND CDST(1)=0) AND CDST(2)=1 AND CDST(9)=1 THEN GOSUB *CD_PLAY :'リピート演奏
7720 IF TRA<>STAT(5) AND CDST(1)=0 AND CDST(2)=0 AND CDST(9)=1 THEN 7740 ELSE RETURN
7730 RETURN
7740 IF CDST(6)=0 THEN 7770
7750 PCOUNT=PCOUNT+1+(PCOUNT>=PCO)*PCO:TRA=PRO(PCOUNT)
7760 GOSUB *CD_PLAY:RETURN
7770 LIV=30:TRA=TRA+1:IF TRA>INF(5) THEN TRA=1:GOSUB *CD_PLAY
7780 GOSUB *CDST_LED:RETURN
7790 '----------------------------------
7800 *TRACK_CHECK
7810 YY=90:IF TRA<>BTRA THEN GOSUB *TR_LED:RETURN:ELSE RETURN
7820 *CDTIME_CHECK
7830 YY=90:GOSUB *TRACK_CHECK
7840 IF SE<>BSE THEN GOSUB *SE_LED
7850 IF MI<>BMI THEN GOSUB *MI_LED
7860 RETURN
7870 '-- CDトラック表示 ----------------------------------------------
7880 *TR_LED
7890 FOR I=0 TO 1:DD=TRA\(10^(1-I)) MOD 10:XX=20+I*18 :'トラック
7900 IF I=0 AND DD=0 THEN DD=10
7910 GOSUB *LEDLOOK_02:NEXT I:BTRA=TRA:RETURN
7920 '-- CD演奏時間表示 ----------------------------------------------
7930 *SE_LED
7940 FOR I=0 TO 1:DD=SE\(10^(1-I)) MOD 10 :'分
7950 XX= 80+20*I:GOSUB *LEDLOOK_02:NEXT I:BSE=SE:RETURN
7960 *MI_LED
7970 FOR I=0 TO 1:DD=MI\(10^(1-I)) MOD 10 :'秒
7980 XX=128+20*I:GOSUB *LEDLOOK_02:NEXT I:BMI=MI:RETURN
7990 *FR_LED:YY=94
8000 FOR I=0 TO 1:DD=FR\(10^(1-I)) MOD 10 :'フレーム
8010 XX=172+I*10:GOSUB *LEDLOOK_01:NEXT I:RETURN
8020 '----------------------------------
8030 *CD_PLAY :CD PLAY TRA,INF(5)
8040 *CD_PLAY2:VL=VL(0):FOR CH=0 TO 1:GOSUB *OUT_VL02:NEXT CH:RETURN
8050 *CD_CONT :CDST(1)=0:CDST(0)=1 : CO=0:I=2:GOSUB *F_BOTTAN:RETURN
8060 *CDST_LED:SYMBOL( 68, 58),"PAUSE" ,1,.875!,%8+2*CDST(1),,,1,1
8070 SYMBOL( 20, 58),"PLAY" ,1,.875!,%8+6*CDST(0),,,1,1
8080 SYMBOL(230, 78),"REPEAT" ,1,.875!,%8+4*CDST(2),,,1,1
8090 SYMBOL(220,100),"PROGRAM",1,.875!,%8+6*CDST(6),,,1,1:RETURN
8100 '- CD情報 ---------------------------
8110 *CD_INF
8120 MOUSE 6,0,PAND3%,PDOT3%
8130 CDINF INF:ERASE CDS&:DIM CDS&(INF(5)),CDW&(INF(5))
8140 FOR I=1 TO INF(5):IF I<INF(5) THEN A$=CDSTIME$(I+1)
8150 IF I=INF(5) THEN CDW&(I)=(INF(2)*60+INF(3))*75+INF(4):GOTO 8170
8160 CDW&(I)=(VAL(LEFT$(A$,2))*60+VAL(MID$(A$,4,2)))*75+VAL(RIGHT$(A$,2))
8170 CDS&(I)=CDW&(I)-CDW&(I-1)
8180 NEXT I
8190 ERASE CDW&:YY=80
8200 FOR I=0 TO 1:DD=INF(5)\10^(1-I) MOD 10
8210 XX=416+I*10:IF I=0 AND DD=0 THEN DD=10
8220 GOSUB *LEDLOOK_01:NEXT I
8230 FOR I=0 TO 1:FOR J=0 TO 1:DD=INF(2+I)\10^(1-J) MOD 10
8240 XX=544+I*24+J*10:IF I=0 AND J=0 AND DD=0 THEN DD=10
8250 GOSUB *LEDLOOK_01:NEXT J,I
8260 IF CDST(8)=0 THEN GOSUB *MES_CLS:CDST(8)=1
8270 CDST(5)=INF(1):SYMBOL(194,58),"MUSIC+DATA",1,.875!,%8,,,1,1
8280 IF CDST(5)<>2 THEN 8300
8290 SYMBOL(72,438),"データ用CDです",1,1,6:CD STOP:ERROR 53
8300 IF CDST(5)=1 THEN A$="MUSIC"
8310 IF CDST(5)=3 THEN A$="MUSIC+DATA"
8320 SYMBOL(194,58),A$,1,.875!,6,,,1,1:GOSUB *CALLENDER_01
8330 IF CDST(6)=1 THEN CDST(6)=0:CO=7:GOSUB *PROPLAY_01S
8340 IF PCO>0 THEN GOSUB *PRORESET_03
8350 GOSUB *RECRESET_02:MOUSE 6,0,PAND1%,PDOT1%
8360 BTRA=-1:BSE=-1:BMI=-1:TRA=0:SE=0:MI=0:GOSUB *CDTIME_CHECK
8370 CDST(10)=INF(5):COLOR 7:IF MO=1 THEN 1540 ELSE IF MO=2 THEN 4180
8380 '- PCM状態 --------------------------
8390 *SE_STAT
8400 PCMST(0)=ABS(PLAY(2))
8410 FREQ%=((OTO%(12)/98)*1000):SEC!=(BY&-32)/FREQ%
8420 'IF PCMST(2)=1 AND PLAY(2)=0 THEN PCMPLAY OTO%,PCMST(5):GOTO 6840
8430 IF PCMST(0)=0 AND BP=1 THEN CO=0:I=9:GOSUB *F_BOTTAN:BP=PCMST(0)
8440 IF LIV<9 OR LIV=10 OR LIV>15 THEN RETURN
8450 *SESTAT_02
8460 IF LIV>8 AND LIV<12 THEN 8500
8470 YY=232:ZERO=0:FOR I=0 TO 6:DD=BY&\(10^(6-I)) MOD 10
8480 IF I=6 OR DD<>ZERO THEN ZERO=-1:ELSE DD=10
8490 XX=522+10*I:GOSUB *LEDLOOK_01:NEXT I
8500 YY=252:FOR I=0 TO 3:DD=FREQ%\(10^(4-I)) MOD 10
8510 IF I=0 AND DD=0 THEN DD=10
8520 XX=422+10*I-(I>1)*4:GOSUB *LEDLOOK_01:NEXT I
8530 ZERO=0:FOR I=0 TO 4:DD=(SEC!*100)\(10^(4-I)) MOD 10
8540 IF I=2 OR DD<>ZERO THEN ZERO=-1:ELSE DD=10
8550 XX=538+10*I-(I>2)*4:GOSUB *LEDLOOK_01:NEXT I
8560 RETURN
8570 '----------------------------------
8580 *TIME_CHECK
8590 YY=28:IF TI$<> LEFT$(TIME$,5) THEN SES=0:GOSUB *TIME_LOOK
8600 IF SE$<>RIGHT$(TIME$,2) THEN SES=2:GOSUB *TIME_LOOK
8610 IF DA$<>DATE$ THEN GOSUB *DATE_LOOK
8620 IF CDST(8)=1 AND (LIV<5 OR LIV>8) THEN GOSUB *CD_STAT
8630 RETURN
8640 '-- 時間表示 ------------------------------------------------------
8650 *TIME_LOOK
8660 FOR I=SES TO 2:D=VAL(MID$(TIME$,1+I*3,2))
8670 FOR J=0 TO 1:DD=D\(10^(1-J)) MOD 10:XX=(302+24*I)+J*10
8680 GOSUB *LEDLOOK_01:NEXT J,I
8690 IF SES=0 THEN TI$=LEFT$(TIME$,5) ELSE SE$=RIGHT$(TIME$,2)
8700 RETURN
8710 '-- 日付表示 ------------------------------------------------------
8720 *DATE_LOOK
8730 FOR I=0 TO 2:D=VAL(MID$(DATE$,1+I*3,2))
8740 FOR J=0 TO 1:DD=D\(10^(1-J)) MOD 10:XX=(216+24*I)+J*10
8750 GOSUB *LEDLOOK_01:NEXT J,I:DA$=DATE$
8760 RETURN
8770 '- Y/N判断 --------------------------
8780 *YN_JUD
8790 GOSUB *WINPUT:PUT@A(168,192)-(471,287),YNWIN%
8800 SYMBOL(320-(LEN(ER$(E))/4)*16,208),ER$(E),1,1,2,,PSET :'エラーメッセージ
8810 SYMBOL(320-(LEN(QU$(Q))/4)*16,232),QU$(Q),1,1,7,,PSET :'メッセージ
8820 IF MOUSE(2,0)=0 THEN 8940 :'マウス
8830 WHILE MOUSE(2,0)=-1
8840 MX=MOUSE(0):MY=MOUSE(1):YE=-1:FOR I=0 TO 1
8850 IF MX>=358+I*48 AND MY>=260 AND MX<=393+I*48 AND MY<=279 THEN YE=1-I
8860 NEXT I
8870 IF YE>-1 THEN GOSUB 9020:GOTO 8920
8880 FOR I=0 TO 1
8890 PUT@A(358+I*48,260)-(393+I*48,279),YN%,MATTE,,,%7:NEXT I
8900 SYMBOL(360,262),"OK NO",1,1,7,,,1
8910 GOSUB *TIME_CHECK
8920 WEND
8930 IF YE>-1 THEN GOSUB 9020:WAIT 5:GOTO *WINCLS
8940 GOSUB *TIME_CHECK:GOTO 8820:KY$=INKEY$ :'キーボード
8950 IF KY$="Y" OR KY$="y" OR KY$=CHR$(13) THEN YE=1:GOTO 8930
8960 IF KY$="N" OR KY$="n" THEN YE=0:GOTO 8930
8970 GOSUB *TIME_CHECK:GOTO 8820
8980 '--------------------------------------------------------------------
8990 *WINPUT:GET@A(168,192)-(471,287),YNWIN%,7296:RETURN
9000 *WINCLS:PUT@A(168,192)-(471,287),YNWIN%,PSET,1,1,,7296:E=0:RETURN
9010 '--------------------------------------------------------------------
9020 PUT@A(358+(1-YE)*48,260)-(393+(1-YE)*48,279),YN%,MATTE,,,%7,216
9030 IF YE=1 THEN YE$="OK" ELSE IF YE=0 THEN YE$="NO"
9040 SYMBOL(360+(1-YE)*48,262),YE$,1,1,2,,,1:RETURN
9050 '- メッセージ枠 -------------------------
9060 *MES :SYMBOL(144-LEN(MES$)*4,420),MES$,1,1,CO:RETURN
9070 *MES_CLS:LINE(16,420)-(278,454),PSET,0,BF:RETURN
9080 '- 機能ボタン --------------------------
9090 *F_BOTTAN
9100 PUT@A(BX(I),BY(I))-(BX(I)+57,BY(I)+37),BOTAN1%,MATTE,,,%7,(640)*CO
9110 SYMBOL(WX(I),WY(I)),NM$(I),1,.55!,%5+CO*5,,,1:RETURN
9120 '--------------------------------------------------------------------
9130 *MOUSE_ROCK
9140 WHILE MOUSE(2,0)=-1
9150 MOUSE 1,MX,MY,1:GOSUB *TIME_CHECK
9160 WEND:RETURN
9170 '- LED表示 --------------------------
9180 *LEDLOOK_01:PUT@A(XX,YY)-(XX+7 ,YY+15),LED% ,PSET,1,1,,32*DD:RETURN
9190 *LEDLOOK_02:PUT@A(XX,YY)-(XX+15,YY+23),LED2%,PSET,1,1,,96*DD:RETURN
9200 '- パレット ---------------------------
9210 *PAL_01:FOR CO=0 TO 15:PALETTE CO,[0,0,0]:NEXT CO:RETURN
9220 *PAL_02:PALETTE : PALETTE 7,[48,48,96]:PALETTE 5,[175,7,248]
9230 PALETTE 9,[64,0,248]:RETURN
9240 '----------------------------------
9250 *DUMMY:CO=0:I=LIV-1:GOSUB *F_BOTTAN:RETURN
9260 '----------------------------------
9270 *終了
9280 Q=7:GOSUB *YN_JUD:MOUSE 6,0,PAND1%,PDOT1% :'終了する?
9290 IF YE=0 THEN CO=0:I=18:GOSUB *F_BOTTAN : RETURN
9300 ERASE OTO%:MOUSE 1,0,0,0:CLS 4
9310 FOR I=0 TO 320
9320 LINE(I,I*.75!)-(640-I,480-I*.75!),PSET,0,B:NEXT I
9330 A$="0005051206020712080108091011"
9340 FOR X=0 TO 13:A=VAL(MID$(A$,1+X*2,2))
9350 BEEP 363523,7,500
9360 PUT@A(208+X*16,232)-(223+X*16,247),ROGO01%,MATTE,,,%0,64*A
9370 WAIT 15:NEXT X
9380 'CDSTAT STAT:IF STAT(1)=0 THEN WAIT 250:END
9390 FOR VL=VL(0) TO 1 STEP -3
9400 FOR CH=0 TO 1:GOSUB *OUT_VL02:NEXT CH:WAIT 2:NEXT VL
9410 WAIT 200:END
9420 '
9430 '*
9440 '
9450 '===================================================================
9460 'グラフィックパターン作成
9470 '===================================================================
9480 '
9490 *PATTAN_MAKE
9500 DIM BOTAN1%(640,1),LED%(32,10),LED2%(96,10),DLED%(40)
9510 DIM ABOUT%(7296),WINDO%(7296),ERWIN%(7296),FRWIN%(7296)
9520 DIM YNWIN%(7296,1),YN%(216,1)
9530 DIM UPDOWN%(120,3),UPDOWN2%(40,3),MENU%(5000),ROGO%(500)
9540 DIM ROGO01%(63,12):LOAD@"MOJI_01.PAT",ROGO01%
9550 DIM CDCOM%(63,12):LOAD@"CDCOM.PAT",CDCOM%
9560 DIM TROGO%(120):LOAD@"TROGO.PAT",TROGO%
9570 '- 機能ボタン --------------------------
9580 FOR K=0 TO 1:A=ABS(K=0)*7:B=ABS(K=1)*7
9590 LINE(17,17)-(74,54),PSET,A,BF,%7
9600 CONNECT(17,54)-(74,54)-(74,17),B
9610 GET@A(17,17)-(74,54),BOTAN1%,640*K:NEXT K:CLS
9620 '- 『麗美亜』ロゴ ------------------------
9630 COLOR ,%2:SYMBOL(17,16),"麗" ,1.5!,1.25!,2,,,7
9640 COLOR ,%1:SYMBOL(43,16),"美亜",1.5!,1.25!,5,,,7,2
9650 GET@A(16,16)-(102,37),ROGO%:COLOR ,0:CLS
9660 '- LED ----------------------------
9670 LINE(16,16)-(47,27),PSET,2,B
9680 SYMBOL(18,18),"DISK",.875!,.55!,2,,,1
9690 GET@(16,16)-(47,27),DLED%,2:CLS
9700 RESTORE 9890:FOR I=0 TO 10:READ L$:L=1
9710 FOR Y=16 TO 31 STEP 7
9720 GOSUB 9870:LINE(17,Y)-STEP(4,0),PSET,%C:NEXT Y
9730 FOR X=16 TO 22 STEP 6
9740 GOSUB 9870:LINE(X,17)-STEP(0,5),PSET,%C
9750 GOSUB 9870:LINE(X,24)-STEP(0,5),PSET,%C:NEXT X
9760 GET@A(16,16)-(23,31),LED%,32*I:NEXT I:CLS
9770 RESTORE 9890:FOR I=0 TO 10:READ L$:L=1
9780 FOR Y=16 TO 38 STEP 11
9790 GOSUB 9870:LINE(18,Y)-STEP(11,1),PSET,%C,BF:NEXT Y
9800 FOR X=16 TO 30 STEP 14
9810 GOSUB 9870:LINE(X,18)-STEP(1,8),PSET,%C,BF
9820 GOSUB 9870:LINE(X,29)-STEP(1,8),PSET,%C,BF:NEXT X
9830 PSET(18,16),0:PSET(29,16),0:PSET(16,18),0:PSET(31,18),0
9840 PSET(16,26),0:PSET(31,26),0:PSET(16,29),0:PSET(31,29),0
9850 PSET(16,37),0:PSET(31,37),0:PSET(18,39),0:PSET(29,39),0
9860 GET@A(16,16)-(31,39),LED2%,96*I:NEXT I:CLS:GOTO 9920
9870 C=VAL("&h"+MID$(L$,L,1)):L=L+1:RETURN
9880 '- LEDデータ -------------------------
9890 DATA E8EEEEE,88888EE,EEE8EE8,EEE88EE,8E8E8EE,EEEE88E,EEEEE8E
9900 DATA E8888EE,EEEEEEE,EEEE8EE,8888888
9910 '- Y/N ウィンドウ ----------------------
9920 FOR K=0 TO 1:A=ABS(K=0)*7:B=ABS(K=1)*7
9930 FOR I=0 TO 1:LINE(16+I,16+I)-STEP(35-I,19-I),PSET,A,BF,%7:NEXT I
9940 FOR I=0 TO 1:CONNECT(16+I,35-I)-(51-I,35-I)-(51-I,16+I),B:NEXT I
9950 GET@A(16,16)-(51,35),YN%,216*K:NEXT K:CLS
9960 FOR I=0 TO 1:LINE(16+I,16+I)-STEP(303-I,95-I),PSET,7,BF,%7:NEXT I
9970 FOR I=0 TO 1:CONNECT(16+I,111-I)-(319-I,111-I)-(319-I,16+I),0:NEXT I
9980 GET@A(16,16)-(319,111),WINDO%
9990 FOR I=0 TO 1:PUT@A(206+I*48,84)-(241+I*48,103),YN%:NEXT I
10000 SYMBOL(208,86),"OK NO",1,1,7,,,1
10010 GET@A(16,16)-(319,111),YNWIN%:CLS
10020 '- アバウト『麗美亜』 ----------------------
10030 PUT@A(16,16)-(319,111),WINDO%:'GOSUB *BOT_02
10040 COLOR ,%8:SYMBOL(36,24),"CD & PCM PLAYER",1,1,7,,PSET,7,1
10050 PUT@A(204,24)-(290,45),ROGO%,MATTE,,,%0
10060 COLOR ,%0:SYMBOL(80,52),"- REIMIA - Ver 1.21",1,1,7,,PSET,5,1
10070 'PUT@A(172,196)-(203,227),ICON2%
10080 SYMBOL(32,80),"(C)1994",1,1,7,,PSET,5,1
10090 A$="0001001200020304"
10100 FOR I=0 TO 7:A=VAL(MID$(A$,1+I*2,2))
10110 PUT@A(108+I*16,79)-(123+I*16,94),ROGO01%,MATTE,,,%0,64*A:NEXT I
10120 GET@A(16,16)-(319,111),ABOUT%
10130 '- エラー表示ウィンドウー --------------------
10140 GOSUB *BOT_02
10150 SYMBOL(80,28),"エラーが発生しました!!",1,1,%10,,,5
10160 SYMBOL(64,48),"ERROR",1,1,%15,,,5
10170 SYMBOL(64,68),"発生行番号",1,1,%15,,,5
10180 GET@A(16,16)-(319,111),ERWIN%
10190 '- フリーメモリ表示ウィンドウー -----------------
10200 GOSUB *BOT_02
10210 COLOR ,0:SYMBOL(42,52),"FREE MEMORY",1,.875!,7,,PSET,5,1
10220 LINE(165,50)-(246,68),PSET,0,BF
10230 YY=52:ZERO=0:DD=10
10240 FOR I=0 TO 7:XX=167+I*10:GOSUB *LEDLOOK_01:NEXT I
10250 SYMBOL(249,52),"Byte",1,.875!,7,,PSET,5,1
10260 GET@A(16,16)-(319,111),FRWIN%
10270 '- 上下ボタン --------------------------
10280 COLOR ,%8:FOR J=0 TO 1:FOR K=0 TO 1:A=ABS(K=0)*7:B=ABS(K=1)*7
10290 LINE(16,16)-STEP(19,19),PSET,A,BF,%7
10300 CONNECT(16,35)-(35,35)-(35,16),B
10310 PUT@A(18,18)-(33,33),CDCOM%,MATTE,1,1,%1,64*(9+J*2+K)
10320 LINE(48,16)-(57,25),PSET,A,BF,%7:CONNECT(48,25)-(57,25)-(57,16),B
10330 CONNECT(50,23-J*5)-STEP(5,0)-STEP(-2,-4+J*8)-(50,23-J*5),%5-(K=1)*5,,F
10340 GET@A(16,16)-(35,35),UPDOWN%,120*(J*2+K)
10350 GET@A(48,16)-(57,25),UPDOWN2%,40*(J*2+K):NEXT K,J:COLOR 7,0:CLS
10360 '- マウスカーソル ------------------------
10370 DIM ICON%(1713),ICON2%(255)
10380 DIM PAND1%(64),PDOT1%(64),PAND2%(64),PDOT2%(64)
10390 DIM PAND3%(64),PDOT3%(64),PAND4%(64),PDOT4%(64)
10400 LOAD@"REIMIA.ICN",ICON%
10410 PUT@A(16, 16)-(47,207),ICON%,PSET,1,1,,176:MOUSE 0
10420 GET@ (16, 16)-(47, 47),PAND1%,1:GET@(16, 16)-(47, 47),PDOT1%,7
10430 GET@ (16, 48)-(47, 79),PAND2%,1:GET@(16, 48)-(47, 79),PDOT2%,7
10440 GET@ (16, 80)-(47,111),PAND3%,1:GET@(16, 80)-(47,111),PDOT3%,7
10450 GET@ (16,112)-(47,143),PAND4%,1:GET@(16,112)-(47,143),PDOT4%,7
10460 GET@A(16,176)-(47,207),ICON2%
10470 MOUSE 6,0,PAND1%,PDOT1%
10480 ERASE ICON% : RETURN
10490 '----------------------------------
10500 *BOT_02
10510 PUT@A(16,16)-(319,111),WINDO%
10520 PUT@A(254,84)-(289,103),YN%,MATTE,,,%7
10530 SYMBOL(256,86),"OK",1,1,7,,,1 : RETURN
10540 '
10550 '
10560 '===================================================================
10570 '画面構成
10580 '===================================================================
10590 '
10600 *VIEW_MAKE
10610 COLOR 7,%0:CLS:GOSUB *PAL_01
10620 LINE(1,1)-(638,462),PSET,%1,BF:LINE(2,2)-(637,49),PSET,%8,BF
10630 COLOR 5,%8:SYMBOL(8,8),"CD & PCM PLAYER",1,1,7,,,7,1
10640 PUT@A(8,26)-(94,47),ROGO%,MATTE,,,%0
10650 COLOR ,%0:SYMBOL(164,8),"(C)1994 SGS SOFT",.85!,.55!,7,,,4,1
10660 SYMBOL( 96,26),"-REIMIA-",.85!,.55!,7,,,4,1
10670 SYMBOL(100,36),"Ver 1.21",.85!,.55!,7,,,4,1
10680 CONNECT(0,463)-(0,0)-(639,0),%7,PSET
10690 CONNECT(0,463)-(639,463)-(639,0),%8,PSET
10700 RESTORE 10730:FOR I=0 TO 15:READ X1,Y1,X2,Y2,CO
10710 LINE(X1,Y1)-(X2,Y2),PSET,0,BF
10720 LINE(X1+1,Y1+1)-(X2-1,Y2-1),PSET,%7,BF,%CO:NEXT I
10730 DATA 8, 52,291,117,0, 292, 52,631, 75,0, 292, 76,631,117,0
10740 DATA 8,415,281,459,0, 11,299,232,344,8, 11,224,373,296,8
10750 DATA 212, 25,371, 46,0, 54,323,185,340,0, 379,224,628,459,8
10760 DATA 13,258,371,281,0, 11,347,281,412,8, 115,375,276,408,0
10770 DATA 283,347,372,459,8, 287,359,368,441,0, 386,310,621,441,0
10780 DATA 239,299,372,344,8
10790 RESTORE 10810:FOR I=0 TO 11:READ X1,Y1,X2,Y2,CO,CO2
10800 LINE(X1,Y1)-(X2,Y2),PSET,%CO,BF,%CO2:NEXT I
10810 DATA 519,231,591,247,0,0, 420,251,465,267,0,0, 536,251,591,267,0,0
10820 DATA 115,350,191,375,0,0, 15,322, 44,339,0,0, 68,304,227,315,7,7
10830 DATA 86,354,107,371,0,0, 16,360, 55,371,7,7, 200,352,275,363,7,7
10840 DATA 16,376,111,407,7,7, 320,228,367,239,7,7, 388,232,435,243,7,7
10850 LINE(138,372)-(143,359),PSET,6
10860 RESTORE 10880:FOR I=0 TO 5:READ X1,Y1,X2,Y2
10870 CONNECT(X1,Y1)-(X1,Y2)-(X2,Y2),7,PSET:NEXT I
10880 DATA 24,245, 71,243, 193,245,136,243, 248,251,251,245
10890 DATA 304,251,307,245, 442,245,438,238, 275,373,244,370
10900 FOR I=0 TO 3:LINE(304+I*16,360)-STEP(0,79),PSET,%7
10910 LINE(288,376+I*16)-STEP(79,0),PSET,%7:NEXT I
10920 FOR I=0 TO 8:LINE(132+I*16,376)-STEP(0,31),PSET,%7:NEXT I
10930 LINE(116,392)-(275,392),PSET,%7
10940 COLOR ,0
10950 RESTORE 10970:FOR I=0 TO 3:READ XX,YY,NM$
10960 SYMBOL(XX,YY),NM$,.825!,.5!-(I=3)*.05!,7:NEXT I
10970 DATA 20,249,"TR START", 134,249,"END", 118,351,"ORDER TIME"
10980 DATA 64,351,"TR:"
10990 FOR I=0 TO 1:LINE(12+I*308,136)-(259+I*368,221),PSET,0,BF,%7:NEXT I
11000 GOSUB *SEWAVE_02
11010 FOR I=0 TO 1:LINE(494+I*70,8)-STEP(56,37),PSET,%7,BF:NEXT I
11020 COLOR ,0:RESTORE 12320:FOR I=0 TO 14:READ WX,WY,NM$
11030 SYMBOL(WX,WY),NM$,1,.5!,6-(I>4),,,1+4,0:NEXT
11040 RESTORE 11070:FOR I=0 TO 4:READ XX,YY,NM$
11050 COLOR ,%10+(I>1)
11060 SYMBOL(XX,YY),NM$,1+(I=1)*.25!,.55!,6+(I>1),,,15+(I=1),3:NEXT I
11070 DATA 16,124,"CD CONTROLL" , 13,304,"VOLUME"
11080 DATA 324,124,"PCM CONTROLL", 16,228,"SAMPLING SET-UP"
11090 DATA 422,276,"PCM INFORMATION"
11100 S=30:DIM WX(S),WY(S),NM$(S),BX(S),BY(S):CO=0 :'機能ボタン
11110 RESTORE 12400:FOR I=0 TO 19:READ WX(I),WY(I),NM$(I),BX(I),BY(I)
11120 GOSUB *F_BOTTAN :NEXT I
11130 RESTORE 11150:FOR I=0 TO 3:READ VLX(I),VL$(I):CO=7+(I=3)*7
11140 GOSUB *VLMODE_SU:NEXT I
11150 DATA 80,"CD",116,"MIC",153,"LINE",196,"PCM"
11160 RESTORE 12570:FOR I=0 TO 13:READ XX,YY,K
11170 PUT@A(XX,YY)-(XX+15,YY+15),CDCOM%,MATTE,,,%1,64*K:NEXT I
11180 RESTORE 11200:FOR I=0 TO 10:READ XX,YY,A$,YO!,TA!
11190 SYMBOL(XX,YY),A$,YO!,TA!,6:NEXT I
11200 DATA 232, 28,". .",1,1, 318, 28,": :",1,1, 118, 92,":",1.2!,1.5!
11210 DATA 164, 94,":" ,1,1, 38,263,"-",1,1, 66,263,": :",1,1
11220 DATA 118,265,"~",.75!,.75!, 148,263,": :",1,1, 316,263,"." ,1,1
11230 DATA 561, 80,":" ,1,1, 162,359,":" ,1,1
11240 FOR I=0 TO 1:SYMBOL(439+I*126,252),".",1,1,6:NEXT I
11250 PUT@(588,100)-(619,111),DLED%,PSET,2
11260 FOR I=0 TO 1
11270 PUT@A(190+I*20,322)-(209+I*20,341),UPDOWN%,PSET,,,,120*(I*2)
11280 NEXT I
11290 BO=0:FOR I=0 TO 3:FOR K=0 TO 1:BOX=(18+I*24-(I>0)*8)+K*10
11300 GOSUB *UDBOT_01:NEXT K,I
11310 FOR I=0 TO 2:FOR K=0 TO 1:BOX=(132+I*24)+K*10:GOSUB *UDBOT_01
11320 NEXT K,I
11330 FOR K=0 TO 1:BOX=244+K*10:GOSUB *UDBOT_01:NEXT K
11340 FOR I=0 TO 1:FOR K=0 TO 1:BOX=(300+I*24)+K*10:GOSUB *UDBOT_01
11350 NEXT K,I
11360 FOR K=0 TO 1:BOX=56+K*10:GOSUB 5220:NEXT K
11370 FOR I=0 TO 1:PUT@(261-I,313-I)-(356-I,332-I),TROGO%,PSET,%4*I:NEXT I
11380 '
11390 '===================================================================
11400 'データREAD
11410 '===================================================================
11420 '
11430 DIM QU$(20),ER$(20),BODA(20,3)
11440 RESTORE 12620:FOR I=1 TO 8:READ QU$(I):NEXT I :'メッセージ
11450 RESTORE 12720:FOR I=1 TO 7:READ ER$(I):NEXT I :'エラーメッセージ
11460 RESTORE 12520:FOR I=0 TO 10:FOR J=0 TO 3:READ BODA(I,J):NEXT J,I
11470 RETURN
11480 '
11490 '
11500 '====================================================================
11510 'エラールーチン
11520 '====================================================================
11530 '
11540 *エラールーチン
11550 MOUSE 6,0,PAND1%,PDOT1%
11560 IF ERR=115 THEN 11580 ELSE 11570 :'データトラックを指定
11570 IF ERR=5 AND (LIV=2 OR (LIV>=5 AND LIV<=8) OR LIV=30) THEN 11580 ELSE 11670
11580 CD PAUSE:IF CDST(6)=1 THEN CDST(6)=0:CO=7:GOSUB 5690
11590 IF LIV=2 THEN TRA=TRA+1+(CDST(10)=TRA)*CDST(10):RESUME 4850
11600 IF LIV=6 THEN RESUME 4470
11610 IF LIV=7 THEN RESUME 4500
11620 IF LIV=30 THEN TRA=TRA+1:CD PLAY TRA,INF(5):RESUME 7780
11630 IF LIV=5 OR LIV=8 THEN CO=0:I=LIV-1:GOSUB *F_BOTTAN
11640 IF LIV=5 THEN LIV=2:TRA=TRA-1-(TRA=1):RESUME 4850
11650 IF LIV=8 THEN LIV=2:TRA=TRA+1+(CDST(10)=TRA)*CDST(10):RESUME 4850
11660 :
11670 IF LIV=14 THEN 11680 ELSE 11710
11680 GOSUB *MES_CLS:CO=2:MES$="データトラックです":GOSUB *MES:WAIT 100
11690 GOSUB *MES_CLS:RESUME 2830
11700 :
11710 IF ERR=53 THEN 11720 ELSE 11840
11720 IF CDST(1)=1 OR CDST(9)=1 THEN CO=0:FOR I=1 TO 3:GOSUB *F_BOTTAN:NEXT I
11730 IF LIV>1 THEN LIV=30:CD STOP:RESUME 7780
11740 CDST(1)=0:CDST(9)=0:GOSUB *CDST_LED
11750 CO=2:MES$="CDをセットして下さい":GOSUB *MES
11760 PUT@(588,100)-(619,111),DLED%,PSET,%7
11770 CDST(8)=0:IF MOUSE(2,0)=0 THEN 11800
11780 MX=MOUSE(0):MY=MOUSE(1):E=0
11790 IF MX>578 AND MX<637 AND MY>18 AND MY<57 THEN I=18:CO=1:GOSUB *F_BOTTAN:GOSUB *終了
11800 E=1:WAIT 50:PUT@(588,100)-(619,111),DLED%,PSET,2:WAIT 50
11810 GOSUB *TIME_CHECK
11820 TRA=1:RESUME 1530
11830 :
11840 IF ERR=72 THEN 11850 ELSE 11870 :'ディスクがセットされていない
11850 E=2:IF LIV=15 THEN 11940 ELSE IF LIV=16 THEN 11880
11860 :
11870 IF ERR=55 THEN 11880 ELSE 11910 :'ファイル名の記述が正しくない
11880 E=3:IF LIV=16 THEN RESUME 1860
11890 IF LIV=15 THEN GOTO 11940
11900 :
11910 IF ERR=63 THEN 11920 ELSE 11960 :'指定ファイルが未発見
11920 IF F=1 THEN COLOR 2:PRINT"PCM音声ファイルは存在しません":RESUME 2500
11930 IF F=2 THEN LOCATE ,CSRLIN+2:RESUME 2490
11940 E=4:CLOSE:ERASE OTO2%:F$=" ":RESUME 2010
11950 :
11960 IF ERR=60 THEN 11970 ELSE 12000 :'ディスクが使用不可
11970 COLOR 2:PRINT"指定したディスクが見つかりません"
11980 RESUME 2500
11990 :
12000 IF ERR=64 THEN 12010 ELSE 12030 :'指定ファイル名が既に存在
12010 E=5:RESUME 1980
12020 :
12030 IF ERR=67 THEN 12040 ELSE 12060 :'ディスク容量が不足
12040 E=6:RESUME 1860
12050 :
12060 IF ERR=73 THEN 12070 ELSE 12090 :'ディスクが書き込み禁止
12070 E=7:RESUME 1860
12080 :
12090 IF ERR=5 AND LIV=2 THEN 12100 ELSE 12120
12100 OT1=OT1+100:ERASE OTO%:DIM OTO%((OT1+OT2*65536+32)/2):RESUME 2130
12110 :
12120 COLOR ,%0:CLS
12130 PUT@A(168,192)-(471,287),ERWIN%
12140 SYMBOL(304,224),AKCNV$(STR$(ERR)),1,1,%15,,,5
12150 SYMBOL(304,244),AKCNV$(STR$(ERL)),1,1,%15,,,5
12160 BEEP 363523,100,80
12170 YE=0:GOSUB *SYS_S2
12180 WHILE MOUSE(2,0)=-1 :'マウス
12190 MX=MOUSE(0):MY=MOUSE(1)
12200 IF MX>=406 AND MY>=260 AND MX<=441 AND MY<=279 THEN YE=1 ELSE YE=0
12210 GOSUB 7570
12220 WEND
12230 IF YE=1 THEN WAIT 5:END
12240 KY$=INKEY$:IF KY$=CHR$(13) THEN YE=1:GOSUB *SYS_S2:WAIT 5:END
12250 GOTO 12180
12260 :
12270 '====================================================================
12280 'データ
12290 '====================================================================
12300 '
12310 *DATA
12320 DATA 16,80,"TRACK TRACK-TIME",88,63,"",304,60,"SND FILE :"
12330 DATA 304,84,"TOTAL TRACK : TOTAL TIME :"
12340 DATA 264,268,"KHz SEC"
12350 DATA 76,240,"CD SYNC",254,242,"FREQ",310,242,"MANUAL"
12360 DATA 594,236,"Byte",468,256,"KHz",594,256,"SEC"
12370 DATA 452,236,"SND SIZE",384,256,"FREQ",502,256,"TIME"
12380 DATA 200,366,"ORDER"
12390 '
12400 DATA 30,166,"STOP" , 18,140, 90,166,"PLAY" , 78,140
12410 DATA 146,166,"PAUSE" ,138,140, 202,166,"REPEAT" ,198,140
12420 DATA 26,206,"FBACK" , 18,180, 90,206,"BACK" , 78,180
12430 DATA 150,206,"NEXT" ,138,180, 206,206,"FNEXT" ,198,180
12440 DATA 398,166,"SLOW" ,386,140, 458,166,"PLAY" ,446,140
12450 DATA 518,166,"FAST" ,506,140, 576,150,"CLEAR" ,566,140
12460 DATA 392,206,"RECORD",386,180, 456,206,"CDREC" ,446,180
12470 DATA 518,190,"LOAD" ,506,180, 578,190,"SAVE" ,566,180
12480 DATA 338,166,"STOP" ,326,140, 338,190," " ,326,180
12490 DATA 576, 18,"EXIT" ,564, 8, 498, 18,"SYSTEM" ,494, 8
12500 'DATA ,,"" ,,
12510 '
12520 DATA 388,232,435,243, 56,322,229,341, 69,304,228,315
12530 DATA 18,284,200,295, 244,280,263,291, 300,280,343,291
12540 DATA 16,360, 79,369, 200,352,275,363, 16,376,275,407
12550 DATA 288,360,367,439, 320,228,367,239
12560 '
12570 DATA 40,144,0, 100,144,1, 160,144,2, 40,184,4, 100,184,6
12580 DATA 160,184,5, 220,184,3, 348,144,0, 408,144,4, 468,144,1
12590 DATA 528,144,3, 408,184,7, 468,184,7, 220,144,8
12600 '
12610 '
12620 DATA "PCM音声データをセーブしますか?"
12630 DATA "ファイルを上書きしますか?"
12640 DATA "PCM音声ファイルをロードしますか?"
12650 DATA "サンプリングを行いますか?"
12660 DATA "もう一度演奏テストを行いますか?"
12670 DATA "サンプリングを開始しますか?"
12680 DATA "『麗美亜』を終了しますか?"
12690 DATA "PCM音声データをクリアしますか?"
12700 'DATA ,,,
12710 '
12720 DATA "CDをセットして下さい","ディスクがセットされていません"
12730 DATA "ファイルの記述が正しくありません"
12740 DATA "指定したファイルが見つかりません"
12750 DATA "指定したファイルが既に存在しています"
12760 DATA "ディスクの容量が足りません"
12770 DATA "ディスクが書き込み禁止になっています"